package com.likou;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * Author: 陈桂明
 * Date: 2025/4/10 13:42
 * Description: q3
 */
public class q3 {
    // public int lengthOfLongestSubstring(String s) {
    //     char[] chars = s.toCharArray();
    //     Set<Character> set = new HashSet<>();
    //     int max = 0;
    //     int p = -1;
    //     for (int i = 0; i < s.length(); i++) {
    //         if (i != 0) {
    //             set.remove(chars[i - 1]);
    //         }
    //
    //         while (p < s.length() - 1 && !set.contains(chars[p + 1])) {
    //             set.add(chars[p + 1]);
    //             p++;
    //         }
    //
    //         max = Math.max(max, set.size());
    //     }
    //
    //     return max;
    // }

    public int lengthOfLongestSubstring(String s) {
        Set<Character> set = new HashSet<>();
        int max = 0;
        int left = 0;
        int right = 0;
        for (; right < s.length(); right++) {
            char c = s.charAt(right);
            while (set.contains(c)) {
                set.remove(s.charAt(left));
                left++;
            }

            set.add(c);

            max = Math.max(max, set.size());
        }

        return max;
    }

}
